{
    // function fn1(value: number): number { return value }
    
    // function fn2(value: string): string { return value }
    
    // const num = fn1(10)
    // function fn3(value: any) : any { return value }

    // const num1 = fn3('xxx')

    // let arr = [1,2]
    // arr.push(1) // 

    // let arr1 = ['1','2']
    // arr1.push('1') //
    
    // 传入什么类型（可能有多种类型）的数据就返回什么类型的数据
    // 1. 定义函数
    function fn<T>(value: T): T { return value }

    // 2. 调用格式
    let age = fn<number>(18)
    
    let num = fn(100)

    let str = fn('abc') // T: string
    
}
